#pragma once
#include <cmath>

class Vector3D
{
	public:
			float x;
			float y;
			float z;
			Vector3D();
			Vector3D(float x, float y, float z);
			~Vector3D();
			float Length() const;
			float SquaredLength() const;
			Vector3D Normalized();
			
			float DotProduct(const Vector3D& v); // dot product, producto escalar

			// Operators
			Vector3D operator+(const Vector3D& v) const;
			Vector3D operator-(const Vector3D& v) const;
			Vector3D operator/(float s) const;

			Vector3D operator*(const float k) const; // vector by factor k
			Vector3D operator*(const Vector3D& s) const;  // cross product, producto vectorial

			bool operator==(const Vector3D& v) const;
			

};

